除了文件本身(称做数据区)之外,另建立一张指示逻辑记录和物理记录之间一一对应关系的表——索引表。这类包括文件数据区和索引表两大部分的文件称做索引文件。
图1所示为两个索引表的例子。索引表中的每一项称做索引项。不论主文件是否按关键字有序,索引表中的索引项总是按关键字(或逻辑记录号)顺序排列。若数据区中的记录也按关键字顺序排列,则称索引顺序文件。反之,若数据区中记录不按关键字顺序排列,则称索引非顺序文件。
![](https://i-blog.csdnimg.cn/blog_migrate/9da9290831909a30421a3342d7f51622.png)
索引表是由系统程序自动生成的。在记录输入建立数据区的同时建立一个索引表,表中的索引项按记录输入的先后次序排列,待全部记录输入完毕后再对索引表进行排序。例如,对应于图2(a)的数据文件,其索引表如图2(b)所示,而图2(c)为文件记录输入过程中建立的索引表。
![](https://i-blog.csdnimg.cn/blog_migrate/c5ad18978cc2c044f5331abf3fb8fc36.png)
索引文件的检索方式为直接存取或按关键字(进行简单询问)存取,检索过程,应分两步进行:首先,查找索引表,若索引表上存在该记录,则根据索引项的指示读取外存上该记录;否则说明外存上不